﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Bussiness;
using Model;
using Data;

namespace hostal
{
    public partial class registarCliente : Form
    {
        private bool nombreIncorrecto, apellidoIncorrecto, numeroDocumentoIncorrecto,sexo,tdocIncorrecto,paisIncorrecto;
        DataTable temp = new DataTable();

        public registarCliente()
        {
            InitializeComponent();

            /*PaisDataAccess hDal = new PaisDataAccess();
            temp = hDal.buscarPaises();
            for (int i = 0; i < temp.Rows.Count; i++)
            {
                CBNacionalidad.Items.Add(temp.Rows[i][0].ToString());
            }*/
            manejadorPaises paises = new manejadorPaises();
            foreach (string country in paises.GetCountryList())
            {
                CBNacionalidad.Items.Add(country);
            }
        }

        private void callFormsChild(Form form)
        {
            form.MdiParent = this.MdiParent;
            form.Show();
            this.Close();
        }

        private void BTAceptar_Click(object sender, EventArgs e)
        {
            if (nombreIncorrecto = Validador.campoVacio(TBNombre.Text))
                EPNombre.SetError(TBNombre, "Requerido");
            else
                EPNombre.Clear();
            if (apellidoIncorrecto = Validador.campoVacio(TBApellido.Text))
                EPApellido.SetError(TBApellido, "Requerido");
            else
                EPApellido.Clear();
            if (numeroDocumentoIncorrecto = Validador.campoVacio(TBNumeroDocumento.Text))
                EPNumeroDocumento.SetError(TBNumeroDocumento, "Requerido");
            else
                EPNumeroDocumento.Clear();
            if (sexo=CBSexo.SelectedIndex==-1)
                EPSexo.SetError(CBSexo, "Requerido");
            else
                EPSexo.Clear();
            if (tdocIncorrecto = CBTipoDocumento.SelectedIndex == -1)
                EPTDoc.SetError(CBTipoDocumento, "Requerido");
            else
                EPTDoc.Clear();
            if (paisIncorrecto = CBNacionalidad.SelectedIndex == -1)
                EPPais.SetError(CBNacionalidad, "Requerido");
            else
                EPPais.Clear();

            try
            {
                if (!nombreIncorrecto && !apellidoIncorrecto && !numeroDocumentoIncorrecto && !sexo)
                {
                    cliente c = new cliente();
                    c.nDocumento = TBNumeroDocumento.Text;
                    c.nombres = TBNombre.Text;
                    c.apellidos = TBApellido.Text;
                    c.telefono = TBTelefono.Text;
                    c.celular = TBCelular.Text;
                    c.notas = TBNotas.Text;

                    c.tDocumento = CBTipoDocumento.SelectedItem.ToString();
                    c.sexo = CBSexo.SelectedItem.ToString();
                    c.profesion = TBProfesion.Text;
                    c.pais = CBNacionalidad.SelectedItem.ToString();
                    c.ciudad = TBCiudad.Text;
                    c.fecnac = DTPFechaNacimiento.Text;

                    manejadorCliente.RegistrarNuevoCliente(c);
                    MessageBox.Show("Registro Exitoso");
                    registarCliente win = new registarCliente();
                    callFormsChild(win);
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void TBNombre_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Validador.validarLetraConEspacio(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void TBApellido_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Validador.validarLetraConEspacio(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void BTCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void registarCliente_Load(object sender, EventArgs e)
        {

        }

        private void CBTipoDocumento_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void TBNumeroDocumento_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Validador.validarNumero(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void TBProfesion_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Validador.validarLetraConEspacio(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void TBCiudad_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Validador.validarLetraConEspacio(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void TBTelefono_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Validador.validarNumero(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void TBCelular_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Validador.validarNumero(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            AgregarPais m = new AgregarPais();
            m.ShowDialog();
            CBNacionalidad.Items.Clear();
            PaisDataAccess hDal = new PaisDataAccess();
            temp = hDal.buscarPaises();
            for (int i = 0; i < temp.Rows.Count; i++)
            {
                CBNacionalidad.Items.Add(temp.Rows[i][0].ToString());
            }
        }
    }
}
